package com.osce.common.core.entity.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.osce.common.annotation.Excel;
import com.osce.common.core.entity.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;

import java.util.Date;

/**
 * 申请更换部门审批对象 dept_transfer_apply
 *
 * @author hdj
 * @since 2025-11-05
 */
@ApiModel(value = "DeptTransferApply", description = "申请审批表")
@Data
@ToString
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class DeptTransferApply extends BaseEntity {

private static final long serialVersionUID=1L;

    /** 主键 */
    @ApiModelProperty("${comment}")
    private Long id;

    /** 用户ID */
            @Excel(name = "用户ID")
    @ApiModelProperty("用户ID")
    private Long userId;

    /** 现有部门ID */
            @Excel(name = "现有部门ID")
    @ApiModelProperty("现有部门ID")
    private Long currentDeptId;

    /** 现有部门名称 */
            @Excel(name = "现有部门名称")
    @ApiModelProperty("现有部门名称")
    private String currentDeptName;

    /** 目标部门ID */
    @Excel(name = "目标部门ID")
    @ApiModelProperty("目标部门ID")
    private Long targetDeptId;

    /** 目标部门名称 */
            @Excel(name = "目标部门名称")
    @ApiModelProperty("目标部门名称")
    private String targetDeptName;

    /** 申请时间 */
            @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
            @Excel(name = "申请时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("申请时间")
    private Date applyTime;

    /** 审批时间 */
            @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
            @Excel(name = "审批时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("审批时间")
    private Date approvalTime;

    /** 审批人ID */
            @Excel(name = "审批人ID")
    @ApiModelProperty("审批人ID")
    private Long approverId;


    @Excel(name = "审批人姓名")
    @ApiModelProperty("审批人姓名")
    private String approverName;


    /** 状态（0：申请中，1：待审核，2：审核通过，3：审核驳回） */
            @Excel(name = "状态", readConverterExp = "1：待审核，2：审核通过，3：审核驳回")
    @ApiModelProperty("状态")
    private Integer status;

    /** 申请原因 */
            @Excel(name = "申请原因")
    @ApiModelProperty("申请原因")
    private String applyReason;

    @Excel(name = "驳回原因")
    @ApiModelProperty("驳回原因")
    private String reasonsRejection;

        }
